var runtime.gcBitsArenas
35 uses
runtime (current package)
malloc.go#L453: lockInit(&gcBitsArenas.lock, lockRankGcBitsArenas)
mheap.go#L2370: var gcBitsArenas struct {
mheap.go#L2401: head := (*gcBitsArena)(atomic.Loadp(unsafe.Pointer(&gcBitsArenas.next)))
mheap.go#L2408: lock(&gcBitsArenas.lock)
mheap.go#L2412: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2413: unlock(&gcBitsArenas.lock)
mheap.go#L2422: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2425: fresh.next = gcBitsArenas.free
mheap.go#L2426: gcBitsArenas.free = fresh
mheap.go#L2427: unlock(&gcBitsArenas.lock)
mheap.go#L2439: fresh.next = gcBitsArenas.next
mheap.go#L2440: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), unsafe.Pointer(fresh))
mheap.go#L2442: unlock(&gcBitsArenas.lock)
mheap.go#L2471: lock(&gcBitsArenas.lock)
mheap.go#L2472: if gcBitsArenas.previous != nil {
mheap.go#L2473: if gcBitsArenas.free == nil {
mheap.go#L2474: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2477: last := gcBitsArenas.previous
mheap.go#L2478: for last = gcBitsArenas.previous; last.next != nil; last = last.next {
mheap.go#L2480: last.next = gcBitsArenas.free
mheap.go#L2481: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2484: gcBitsArenas.previous = gcBitsArenas.current
mheap.go#L2485: gcBitsArenas.current = gcBitsArenas.next
mheap.go#L2486: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), nil) // newMarkBits calls newArena when needed
mheap.go#L2487: unlock(&gcBitsArenas.lock)
mheap.go#L2494: if gcBitsArenas.free == nil {
mheap.go#L2495: unlock(&gcBitsArenas.lock)
mheap.go#L2500: lock(&gcBitsArenas.lock)
mheap.go#L2502: result = gcBitsArenas.free
mheap.go#L2503: gcBitsArenas.free = gcBitsArenas.free.next
![]() |
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |